Static random access memory (SRAM) is a type of semiconductor memory used in many integrated circuit applications, from embedded memory (e.g., as cache memory and register files) in general purpose processors and application specific integrated circuits to external memories. SRAM is a desirable type of memory due to its high-speed, low power consumption, and simple operation. Unlike dynamic random access memory (DRAM), SRAM does not need to be regularly refreshed to retain the stored data, and its design is generally straightforward.
A typical SRAM cell includes a pair of cross-coupled inverters that hold a desired data bit value (i.e., either a 1 or a 0) and the complement of that value. While SRAM is a desirable type of memory, it is known that if not properly designed and fabricated, an SRAM cell can become unstable when accessed, at which point the held bit value is upset, i.e., switches. Moreover, the stability of an SRAM cell is in full conflict with the writeability of the cell with respect to the strengths of the N-type devices (transistors) and P-type devices (transistors) within the cell. Readability of an SRAM cell is the ability drive a required signal magnitude onto the bitline within a specified time allocated for signal development, and is a function of the read current of the cell. There tends to be a performance conflict between stability and readability/writeability in such cells. Techniques that increase stability typically have the adverse effect of decreasing readability/writeability. Conversely, techniques that increase readability/writeability typically have the adverse effect of decreasing stability.